View তৈরি এবং Controller এর সাথে সংযোগ করা

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter Views |

View হলো CodeIgniter ফ্রেমওয়ার্কের এমন একটি উপাদান, যা অ্যাপ্লিকেশনের আউটপুট এবং ইউজার ইন্টারফেস প্রদর্শন করার জন্য ব্যবহৃত হয়। এটি সাধারণত HTML, CSS এবং JavaScript কোড সমন্বিত হয়। Controller থেকে View-এ ডেটা পাঠানো হয় এবং View সেই ডেটা ব্যবহার করে আউটপুট রেন্ডার করে।


View তৈরি করা

  1. View ফাইলের অবস্থান CodeIgniter-এ View ফাইলগুলো app/Views ডিরেক্টরিতে সংরক্ষিত হয়।
  2. View ফাইল তৈরি উদাহরণ: একটি নতুন View ফাইল তৈরি করুন app/Views/product_list.php নাম দিয়ে।
  3. HTML কোড যোগ করুন

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Product List</title>
    </head>
    <body>
        <h1>Product List</h1>
        <ul>
            <?php if (isset($products) && !empty($products)): ?>
                <?php foreach ($products as $product): ?>
                    <li><?= esc($product['name']); ?> - <?= esc($product['price']); ?></li>
                <?php endforeach; ?>
            <?php else: ?>
                <li>No products available.</li>
            <?php endif; ?>
        </ul>
    </body>
    </html>
    

Controller থেকে View লোড করা

Controller এর মাধ্যমে View লোড করা যায় view() মেথড ব্যবহার করে।

Controller তৈরি

  1. app/Controllers ডিরেক্টরিতে একটি Controller ফাইল তৈরি করুন। উদাহরণ: ProductController.php
  2. Controller এর কোড যুক্ত করুন

    <?php
    
    namespace App\Controllers;
    
    class ProductController extends BaseController
    {
        public function index()
        {
            // ডেটা তৈরি করা
            $data['products'] = [
                ['name' => 'Product 1', 'price' => 100],
                ['name' => 'Product 2', 'price' => 200],
                ['name' => 'Product 3', 'price' => 300],
            ];
    
            // View লোড করা
            return view('product_list', $data);
        }
    }
    

View এবং Controller এর সংযোগ পরীক্ষা

  1. Controller রুট সেট করুন CodeIgniter-এ রাউট সেট করার জন্য app/Config/Routes.php ফাইলটি খুলুন এবং নিচের কোড যুক্ত করুন:

    $routes->get('/products', 'ProductController::index');
    
  2. ব্রাউজারে পরীক্ষা করুন ব্রাউজারে http://localhost/your_project_name/products URL লিখুন।
    যদি সবকিছু সঠিকভাবে কনফিগার করা হয়, তবে পণ্যের তালিকা View এ প্রদর্শিত হবে।

Controller থেকে View-এ ডেটা পাঠানো

Controller থেকে View-এ ডেটা পাঠানোর জন্য একটি অ্যাসোসিয়েটিভ অ্যারে ব্যবহার করা হয়। উদাহরণ:

Controller

public function index()
{
    $data = [
        'title' => 'Product List',
        'products' => [
            ['name' => 'Product 1', 'price' => 100],
            ['name' => 'Product 2', 'price' => 200],
        ],
    ];

    return view('product_list', $data);
}

View

<h1><?= esc($title); ?></h1>
<ul>
    <?php foreach ($products as $product): ?>
        <li><?= esc($product['name']); ?> - <?= esc($product['price']); ?></li>
    <?php endforeach; ?>
</ul>

View ফাইল ভেঙে ভাগ করা (Reusable Views)

CodeIgniter-এ View ফাইলগুলো ভেঙে ভাগ করা যায়, যেমন header, footer

উদাহরণ: Header এবং Footer আলাদা করা

  1. app/Views/header.php ফাইল:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title><?= esc($title); ?></title>
    </head>
    <body>
    
  2. app/Views/footer.php ফাইল:

    </body>
    </html>
    
  3. app/Views/product_list.php ফাইল:

    <?= view('header', ['title' => 'Product List']); ?>
    <h1>Product List</h1>
    <ul>
        <?php foreach ($products as $product): ?>
            <li><?= esc($product['name']); ?> - <?= esc($product['price']); ?></li>
        <?php endforeach; ?>
    </ul>
    <?= view('footer'); ?>
    

সারাংশ

  • Controller View লোড করে এবং ডেটা পাস করে।
  • View অ্যাপ্লিকেশনের আউটপুট প্রদর্শন করে।
  • View ফাইল ভেঙে ভাগ করা গেলে কোড পুনরায় ব্যবহারযোগ্য হয়।
  • Controller এবং View এর মাধ্যমে ডেটা পরিচালনা করা CodeIgniter-কে মডুলার এবং রক্ষণাবেক্ষণযোগ্য করে তোলে।
Content added By
Promotion